package com.example.web.controller;

import com.example.api.Result;
import com.example.api.utils.HttpStatusEnum;

public interface BaseController {


    /**
     * 成功返回
     *
     * @param data 返回内容
     * @param <T>  返回类型
     * @return com.jtmm.cicd.api.utils.Result
     */
    default  <T> Result<T> success(T data) {
        return Result.success(data);
    }
    /**
     * 成功返回
     *
     * @param data 返回内容
     * @param <T>  返回类型
     * @return com.jtmm.cicd.api.utils.Result
     */
    default  <T> Result<T> success(T data,String msg) {
        return Result.success(data,msg);
    }

    /**
     * 成功返回
     *
     * @return Result.true
     */
    default  Result<Boolean> success() {
        return Result.success();
    }


    /**
     * 失败返回
     *
     * @param exceptionCode 失败异常码
     * @param <T>
     * @return
     */
    default  <T> Result<T> fail(HttpStatusEnum exceptionCode) {
        return Result.fail(exceptionCode);
    }

    /**
     * 失败返回
     *
     * @param exception 异常
     * @param <T>
     * @return
     */
    default  <T> Result<T> fail(HttpStatusEnum exception,String msg) {
        return Result.fail(exception,msg);
    }

}
